#include <iostream>

int func()
{
    std::cout<<0021<<std::endl;
    return 10;
}

// decltype 后置   返回值auto
template<typename T1,typename T2>
auto add(const T1& a,const T2& b)->decltype(a + b)
{
    return a + b;
}


int main()
{
    //自动推导表达式类型
    // 1、不需要初始化
    // 2、可以推导出引用类型
    // 3、推导表达式不会真的计算执行
    // 4、表达式返回值是左值，推引用类型，右值推变量
    // 5、直接用函数调用来推导类型，函数不会执行
    int a = 10;
    decltype(func()) b = a;
    std::cout<<a<<std::endl;

    return 0;
}